package login;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;


@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //super.doPost(req, resp);
        // 获取用户输入的用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        // 验证用户名和密码是否正确，正常情况下，用户名和密码会使用数据库来保存
        // 此处为了演示，我们直接写死
        // 此处约定，合法的用户名就是 zhangsan 和 lisi
        // 密码合法的都是 123

        // 这个代码嵌套了条件语句，不明朗，我们此处等价转换一下
//        if(username.equals("zhangsan") || username.equals("lisi")) {
//            if(password.equals("123")) {
//                // 登录成功
//            } else {
//                // 登陆失败
//            }
//        } else {
//            // 登陆失败
//        }

        // 注意此处是 并且 的关系，不是 或 的关系，既不是zhangsan 也不是 lisi 才登陆失败
        //if(!username.equals("zhangsan") || !username.equals("lisi")) {
        if(!username.equals("zhangsan") && !username.equals("lisi")) {
            // 登陆失败
            // 重定向到 登陆页面
            // 注意不要忘记写 .html  就是你要访问的路径
            resp.sendRedirect("login.html");
            return;
        }
        if(!password.equals("123")) {
            // 登陆失败
            resp.sendRedirect("login.html");
            return;
        }
        // 登陆成功
        // 1. 创建一个会话
        HttpSession session =  req.getSession(true);
        // 2. 把当前的用户名保存到会话中去，此处的 HttpSession对象又可以当作一个 map 来使用
        // 还有一个 getAttribute 是查询的，setAttribute 相当于是设置key
        session.setAttribute("username",username);
        // 3. 重定向到 index 主页
        resp.sendRedirect("index");
    }
}
